Many transmission systems employ methods for detection of digital data represented by a sequence of symbols. The symbols are transferred as a signal through a communication channel that typically corrupts the transmitted signal with noise. Various error correction schemes may be employed to improve reliability of the transmission. For example, in a forward error correction (FEC) scheme, a transmitter encodes source information by incorporating additional data (or redundancy) based on an error-correction code (ECC). A receiver receives and decodes the encoded data using the same ECC. The redundancy added by the ECC allows the receiver to provide error-correcting functionalities, for example, by eliminating errors in the received signal.
Encoding data with a product-code (PC) and subsequent decoding of the encoded data are employed in many FEC systems because of performance and design advantages (e.g., because of the regular structure of the PC and the resulting high performance gain). A PC is a code constructed from two or more codes, called component codes, which may be combined in an orthogonal manner. In particular, an N-dimensional PC is a code composed of N component codes, where each codeword of the PC can be represented as an N-dimensional array of symbols. In one example, a two-dimensional code includes a source data block, parity checks on the row codewords, parity checks on the column codewords, and checks on the checks. A three-dimensional code may be represented by a cube with three of the six faces being the parity check bits in each dimension.
Customers want encoding (e.g., FEC) solutions to be used in their existing devices to achieve high performance goals. However, schemes that may achieve these high performance goals, e.g., via product-codes (PC) or turbo product-codes (TPC), may not be consistent with the frame formats used for manipulating and/or transmitting data in these existing devices. For example, the structure of a PC may be incompatible with internal data formats used in the existing devices or with standardized data formats used in some commonly used transmission protocols (i.e., transmission framing formats).
Existing systems use two approaches to address this tension between interoperability and performance goals. First, existing system architectures use custom mapper and demapper logic to convert between the FEC data format and the standardized transmission frame format. This solution decouples the transmission framing from the structure used for FEC coding. In one example, an encoder expects incoming data to be formatted according to a standard transmission frame format, leaving the FEC redundancy area (or overhead) void. One example of a standard transmission format is the ITU-T G.975 format for communication through an optical transport network (OTN) fiber. A mapper then maps the incoming data from the standard-compliant frame format to an intermediate FEC format. The FEC encoder then encodes the formatted data. The FEC-encoded data is then demapped back to the standard-compliant frame format and transmitted in that form. This custom mapping/demapping solution is thus compatible with legacy systems, but incurs added complexity, latency, and an increase in logic utilization.
Second, existing systems use a super-frame format such that the same proprietary frame structure is used for transmission and for FEC encoding. This approach, however, makes the system an end-to-end solution because the super-frame is not necessarily interoperable with legacy systems or with transmission standards. This solution may also involve manipulating and transmitting large super-frames, which may incur added complexity, latency, and increased logic utilization.